<?xml version="1.0" encoding="utf-8"?>
<!--
                                                                                     
 h       t     t                ::       /     /                     t             / 
 h       t     t                ::      //    //                     t            // 
 h     ttttt ttttt ppppp sssss         //    //  y   y       sssss ttttt         //  
 hhhh    t     t   p   p s            //    //   y   y       s       t          //   
 h  hh   t     t   ppppp sssss       //    //    yyyyy       sssss   t         //    
 h   h   t     t   p         s  ::   /     /         y  ..       s   t    ..   /     
 h   h   t     t   p     sssss  ::   /     /     yyyyy  ..   sssss   t    ..   /     
                                                                                     
	<https://y.st./>
	Copyright © 2016 Alex Yst <mailto:copyright@y.st>

	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with this program. If not, see <https://www.gnu.org./licenses/>.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="https://y.st./en/weblog/2016/04-April/23.xhtml" />
		<title>CD-Text, Quod Libet, MP3 file inconsistency, and a battle of wills &lt;https://y.st./en/weblog/2016/04-April/23.xhtml&gt;</title>
		<link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png" />
		<link rel="stylesheet" type="text/css" href="/link/basic.css" />
		<link rel="stylesheet" type="text/css" href="/link/site-specific.css" />
		<script type="text/javascript" src="/script/javascript.js" />
		<meta name="viewport" content="width=device-width" />
	</head>
	<body>
		<nav>
			<p>
				<a href="/en/">Home</a> |
				<a href="/en/a/about.xhtml">About</a> |
				<a href="/en/a/contact.xhtml">Contact</a> |
				<a href="/a/canary.txt">Canary</a> |
				<a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
				<a href="/en/opinion/">Opinions</a> |
				<a href="/en/coursework/">Coursework</a> |
				<a href="/en/law/">Law</a> |
				<a href="/en/a/links.xhtml">Links</a> |
				<a href="/en/weblog/2016/04-April/23.xhtml.asc">{this page}.asc</a>
			</p>
			<hr/>
			<p>
				Weblog index:
				<a href="/en/weblog/"><abbr title="American Standard Code for Information Interchange">ASCII</abbr> calendars</a> |
				<a href="/en/weblog/index_ol_ascending.xhtml">Ascending list</a> |
				<a href="/en/weblog/index_ol_descending.xhtml">Descending list</a>
			</p>
			<hr/>
			<p>
				Jump to entry:
				<a href="/en/weblog/2015/03-March/07.xhtml">&lt;&lt;First</a>
				<a rel="prev" href="/en/weblog/2016/04-April/22.xhtml">&lt;Previous</a>
				<a rel="next" href="/en/weblog/2016/04-April/24.xhtml">Next&gt;</a>
				<a href="/en/weblog/latest.xhtml">Latest&gt;&gt;</a>
			</p>
			<hr/>
		</nav>
		<header>
			<h1>CD-Text, Quod Libet, <abbr title="MPEG-1 or MPEG-2 Audio Layer III">MP3</abbr> file inconsistency, and a battle of wills</h1>
			<p>Day 00413: Saturday, 2016 April 23</p>
		</header>
<p>
	I&apos;m about to have a second <abbr title="compact disc">CD</abbr> album, and most likely, both of my <abbr title="compact disc">CD</abbr> albums don&apos;t/won&apos;t have meta data.
	I&apos;ve decided to look into meta data in case I decide that adding my own is in fact the correct approach.
	Both <abbr title="Free Lossless Audio Codec">FLAC</abbr> files and Vorbis files use <a href="https://en.wikipedia.org./wiki/Vorbis_comment#Format">Vorbis comments</a>, so I read up on what tags I&apos;d need to be adding.
	As it turns out, there&apos;s a limit to the number of tags that you can have in Vorbis comments, but you can give them arbitrary names as long as they conform to the very liberal name syntax.
	This makes them much more extensible than ID3 comments, but also means that I have no structure with which to work with.
	There are several basic tags that I want to include, but beyond that, what else should I add? If I were using a restrictive tag set such as ID3 that only allowed certain tags, the answer would be obvious: add every available tag.
	Maybe I should use only the meta data used by my mobile, minus the cover art.
	It&apos;s a very arbitrary set of tags, but I don&apos;t know what else to go with.
	I considered these tags for use:
</p>
<ul>
<li>track number: included on CD, so most important tag to use</li>
<li>album cover: used by the mobile, but probably best left empty to conserve space</li>
<li>title: used by the mobile</li>
<li>album name: used by the mobile for sorting albums</li>
<li>album artist: used by the mobile for sorting albums</li>
<li>track artist: used by the mobile</li>
<li>lyrics: neat, but probably not included in CD insert, not used by the mobile</li>
<li>genre: used by the mobile, but probably not included in CD insert</li>
</ul>
<p>
	Maybe I should just try to include as much information (aside from the cover art) as I can get from the <abbr title="compact disc">CD</abbr> insert.
	If the information doesn&apos;t seem to relate to much, I could just put it in a &quot;Comment&quot; tag.
</p>
<p>
	Perhaps if meta data isn&apos;t included on the <abbr title="compact disc">CD</abbr>s though, it should just be left out of the ripped files.
	As it turns out, audio <abbr title="compact disc">CD</abbr>s can have meta data using <a href="https://en.wikipedia.org./wiki/CD-Text">CD-Text</a>.
	If CD-Text isn&apos;t used for the <abbr title="compact disc">CD</abbr>, maybe the correct choice is to not use meta data, as it&apos;s similar to the situation in which <abbr title="Waveform Audio File Format">WAVE</abbr> files or metaless <abbr title="Free Lossless Audio Codec">FLAC</abbr>/Vorbis files are provided.
	In the case of those files, meta data was deliberately left out and should remain missing.
	<a href="apt:k3b">K3b</a> and <code>cd-info</code> from <a href="apt:libcdio-utils"><code>libcdio-utils</code></a> are supposed to be able to read CD-Text from audio <abbr title="compact disc">CD</abbr>s, but the audio <abbr title="compact disc">CD</abbr>s that I have access to here in our former residence don&apos;t seem to have it.
	It could be because the <abbr title="compact disc">CD</abbr>s were manufactured not too long after the standard was put in place (many even came out before the standard), but an article I read about <a href="https://www.hanselman.com/blog/HowToWriteOrBurnACDCDRThatIncludesCDTextWithImgBurn.aspx"><abbr title="compact disc">CD</abbr> burning</a> says that not many <abbr title="compact disc">CD</abbr>s use it.
	It seems like maybe even modern <abbr title="compact disc">CD</abbr>s aren&apos;t likely to have this much-needed meta data.
</p>
<p>
	<a href="https://opalrwf4mzmlfmag.onion/">Wowaname</a> knows about the issues that I&apos;m having with the <abbr title="Client for URLs/Client URL Request Library/Curl URL Request Library">cURL</abbr> developers, and showed me how real developers can handle things.
	She&apos;s got a problem with <a href="apt:atheme-services">Atheme <abbr title="Internet Relay Chat">IRC</abbr> services</a>, so she told the developers on <abbr title="Internet Relay Chat">IRC</abbr>.
	One of them reported it in the project&apos;s bug tracker, flagging it as needing discussion.
	Another developer came along and said <a href="https://github.com/atheme/atheme/issues/486#issuecomment-213796280"><q>how does this need discussion? it&apos;s a bug...
	fix it.</q></a> and removed the flag about it needing discussion.
	It&apos;s a bug.
	Fix it.
	There no need to discuss if buggy behavior should be maintained! If only the <abbr title="Client for URLs/Client URL Request Library/Curl URL Request Library">cURL</abbr> developers saw it that way.
</p>
<p>
	I took some time to try to fix the sound output issue in <a href="apt:quodlibet">Quod Libet</a> again.
	It&apos;s a nice and simple music player, but since installing <a href="/en/domains/cepo.local.xhtml">cepo</a>&apos;s operating system, it hasn&apos;t functioned.
	I&apos;ve assumed that this is due to a missing package in the Debian 8 default install, but it&apos;s a bit strange, as Quod Libet itself was installed by default.
	Since then, every once in a while, I try to figure out what that missing package is.
	I found instructions for getting it working in an old version of Ubuntu, so I tried installing the <a href="https://ubuntuforums.org/showthread.php?t=1353277&amp;page=3&amp;p=8748826#post_8748826">packages mentioned</a>.
	That didn&apos;t work.
	I ended up paying a visit to <a href="ircs://irc.oftc.net:6697/%23QuodLibet">#QuodLibet</a> in hopes of maybe getting somewhere.
	JanC tried to be very helpful, but was as lost as I was.
	After quite a bit of checking various things that didn&apos;t pan out, I happened to run a search for &quot;gstreamer&quot; in my packages.
	I found that while <a href="apt:gstreamer0.10-alsa">gstreamer0.10-alsa</a> was installed, <a href="apt:gstreamer1.0-alsa">gstreamer1.0-alsa</a> was not.
	After installing that, Quod Libet was able to play music properly.
	Yay! This wasn&apos;t of huge concern, as I usually use my mobile for music and I could always use <abbr title="VideoLAN Client">VLC</abbr> Media Player to play music after navigating to it in my file system, but having an actual working music manager on <a href="/en/domains/newdawn.local.xhtml">newdawn.local.</a> is nice.
	JanC said that she didn&apos;t know why she hadn&apos;t thought of that sooner, and recommended using <a href="apt:gstreamer1.0-pulseaudio">gstreamer1.0-pulseaudio</a> instead.
	Purging the former and installing the latter, Quod Libet continued to play.
</p>
<p>
	Speaking of Quod Libet, I accidentally stumbled upon a new display mode for my albums.
	This mode is much nicer, displaying a customizable label along with the album&apos;s artwork in a list on the left.
	Additionally, I tracked down another discrepancy between <a href="apt:exfalso">Ex Falso</a>&apos;s view of albums and Replicant&apos;s view of albums.
	In addition to Replicant choosing one version of a given <abbr title="MPEG-1 or MPEG-2 Audio Layer III">MP3</abbr> file&apos;s ID3 meta data over the other with no visible pattern as to which is chosen, Ex Falso, which uses the same tag-reading library as Quod Libet, reads the ID3 tags a bit differently than Replicant and <a href="apt:kid3-qt">Kid3</a>.
	The tag that Replicant and Kid3 treats as the &quot;album artist&quot; is instead treated by Quod Libet and Ex Falso as the &quot;performer&quot;.
	There is a very big difference in both the sorting and the meaning of these tags.
	The album artist is simply the one that put the album together, and may not have even performed any of the tracks.
	The corresponding tag allows separate albums to be considered by the machine to be separate while still allowing work by multiple artists to remain on the same album if that is indeed the intention.
	It acts on the assumption that one artist won&apos;t release multiple albums by the same title, which would be a pretty stupid thing for them to do.
	The performer though is obviously the one that performed in the recorded track, and shouldn&apos;t have any effect on sorting.
	What this discrepancy means is that Quod Libet and Ex Falso will never see an &quot;album artist&quot; tag on any <abbr title="MPEG-1 or MPEG-2 Audio Layer III">MP3</abbr> files, so they cannot be used to sort my <abbr title="MPEG-1 or MPEG-2 Audio Layer III">MP3</abbr> files if I want the sorting to match that of my mobile.
	I swear, <abbr title="MPEG-1 or MPEG-2 Audio Layer III">MP3</abbr> files are a pain.
	<abbr title="Free Lossless Audio Codec">FLAC</abbr> and Vorbis files are treated in a much more consistent manor, not to mention the free de facto codecs for them, the lack of patents, and the better sound quality.
</p>
<p>
	I got the sweeping done today, but I spent too much time dealing with music file research and debugging Quod Libet, so I didn&apos;t get any work done on the girls&apos; bedroom.
	I&apos;ll need to hurry and finish that tomorrow.
</p>
<p>
	As I was going to bed, I noticed that wowaname was in some fight with KindOne in <a href="ircs://kitsune6uv4dtdve.onion:6697/%23Volatile">#Volatile</a>.
	I have no idea what started the fight, but wowaname wanted KindOne to leave and KindOne wanted wowaname to ban him from the server using a K-line.
	Wowaname was refusing to use technical measures to make KindOne leave, instead insisting that KindOne needed to leave of his own accord.
	Wowaname dropped her server operator status and her channel operator status, ostensibly to show that she had no intention of backing up her verbal banishment with the technical implementation, but after a while, she wanted to try flooding KindOne off the network.
	She couldn&apos;t do this though, as the channel user limit was set too low to prevent such abuse by others.
	Without her channel operator status, she couldn&apos;t do it, so she asked for someone, anyone, to raise the user limit; about half of the in the channel are channel operators.
	I was not going to get involved in this though, especially considering the fact that I didn&apos;t even know what the fight was really about.
	I&apos;m not against KindOne, and raising the user limit would have been an act of aggression against KindOne.
	JorHec eventually removed the user limit altogether, after which a spam battle between wowaname and KindOne ensued.
	Wowaname next wanted her operator status back, but again, I was staying out of it.
	I harbor no ill will towards KindOne.
	By this point, I was far too tired to continue watching this madness, so I went to bed.
	I already should have been asleep and I have a lot to get done tomorrow.
</p>
		<hr/>
		<p>
			Copyright © 2016 Alex Yst;
			You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
			If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
			My address is in the source comments near the top of this document.
			This license also applies to embedded content such as images.
			For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
		</p>
		<p>
			<abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
			This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F04-April%2F23.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.1</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fweblog%2F2016%2F04-April%2F23.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
		</p>
	</body>
</html>

